﻿//                       NOTICE
// 
// This software was produced for the U. S. Government
// under Contract No. FA8721-10-C-0001, and is
// subject to the Rights in Noncommercial Computer Software
// and Noncommercial Computer Software Documentation Clause
// (DFARS) 252.227-7014 (JUN 1995)
// 
// � 2010 The MITRE Corporation. All Rights Reserved. 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MXSE.MultiTouch.Gestures
{
    public class ZoomGesture : ComplexGesture
    {
        /// <summary>
        /// Requires two SlideGestures, order doesn't matter.
        /// </summary>
        /// <param name="first">One SlideGesture of the ZoomGesture.</param>
        /// <param name="second">Other SlideGesture of the ZoomGesture.</param>
        public ZoomGesture(SlideGesture first, SlideGesture second)
        {
            AddBasic(first);
            AddBasic(second);
        }

        /// <summary>
        /// Overridden method.
        /// </summary>
        /// <returns>True if gesture should be removed.</returns>
        public override bool Destroyed()
        {
            if (Basics[0].Destroyed() || Basics[1].Destroyed())
                return true;
            return false;
        }

        protected override void OnDeath()
        {
            if (message != null)
            {
                message.Destroy();
                message = null;
            }
            base.OnDeath();
        }

        public Microsoft.Xna.Framework.Vector2 centerPosition()
        {
            return (Basics[0].startPosition + Basics[1].startPosition) / 2;
        }
    }
}
